Curve widening creator
Description
-
This is a custom tool to create curve widening to a corridor using template point and .wid file
-
Curve widening is used to automatically create and apply horizontal controls to widen lane and/or edge of pavement lines around curves, moving them further away from the centerline at each curve of the controlling alignment.
-
Prerequisites to use this tool are,
Source Code
//Required References
using Bentley.CifNET.GeometryModel.SDK;
public Bentley.CifNET.GeometryModel.SDK.CurveWidening CurveWideningToCorridor()
{
Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit con = Bentley.CifNET.SDK.Edit.ConsensusConnectionEdit.GetActive();
GeometricModel geomModel = con.GetActiveGeometricModel();
if (geomModel == null) return null;
//Add Curve widening to first corridor from list
foreach (Corridor corridor in geomModel.Corridors)
{
//create parameters for curve widening
double startDistance = corridor.StartDistance;
double endDistance = corridor.EndDistance;
string pointName = "EOP_R";
Bentley.CifNET.GeometryModel.SDK.CurveWideningParameter curveWideningParameter = new Bentley.CifNET.GeometryModel.SDK.CurveWideningParameter(pointName, startDistance, endDistance);
curveWideningParameter.Description = "Sample CW on EOP_R";
curveWideningParameter.Enabled = false;
curveWideningParameter.Overlap = CurveWideningOverlap.ShiftMaxWideningPointsOntoCurves;
curveWideningParameter.Priority = 1;
curveWideningParameter.UseSpiralLengthForTransition = false;
//User needs to change the parameters from this wid file as needed i.e., Rad, Wi, Li , Wo,Lo etc.
curveWideningParameter.WideningTableFileName = "C:\\ProgramData\\Bentley\\OpenRoads Designer CE 10.11\\Configuration\\Organization-Civil\\_Civil Default Standards - Imperial\\Widening\\curve_widening_imperial_no_spirals.wid";
//create curve widening for corridor
Bentley.CifNET.GeometryModel.SDK.CurveWidening curveWidening = corridor.AddCurveWidening(curveWideningParameter);
if (curveWidening == null) return null;
return (Bentley.CifNET.GeometryModel.SDK.CurveWidening)curveWidening;
}
return null;
}